package chai.ning.recursion;

public class Snake {
	
	private String name = "赖皮蛇" ;
	
	public long factorial( long n ){
		if( n < 0 ) {
			System.out.println( this.name + "友情提示您，负数没有阶乘" );
			return -250 ;
		} else if( n == 0 || n == 1 ) {
			// 当 给定的数值为 0  或 1 时直接返回 1
			return 1 ; // 0! 、1!
		} else {
			// 将 求 n 的阶乘 转换为 求 ( n -1 ) 的阶乘
			// 所以可以通过 调用 方法本身来实现
			return n * factorial( n - 1 ) ;
		}
	}
	
	public static void main(String[] args) {
		
		Snake s = new Snake();
		
		long n = 10 ;
		long r = s.factorial( n );
		System.out.println( n + "! = " + r );
		
		s.factorial( -6 );
		
	}

}
